\hypertarget{class_r_t_o_s}{\section{R\-T\-O\-S Class Reference}
\label{class_r_t_o_s}\index{R\-T\-O\-S@{R\-T\-O\-S}}
}


static class, namespace-\/like container for \hyperlink{class_r_t_o_s}{R\-T\-O\-S} declarations  




{\ttfamily \#include $<$p\-R\-T\-O\-S.\-h$>$}

\subsection*{Classes}
\begin{DoxyCompactItemize}
\item 
class {\bfseries callback}
\begin{DoxyCompactList}\small\item\em \hyperlink{class_r_t_o_s}{R\-T\-O\-S} private implementation class. \end{DoxyCompactList}\item 
class \hyperlink{class_r_t_o_s_1_1channel}{channel}
\begin{DoxyCompactList}\small\item\em waitable data queue \end{DoxyCompactList}\item 
class \hyperlink{class_r_t_o_s_1_1channel__base}{channel\-\_\-base}
\begin{DoxyCompactList}\small\item\em \hyperlink{class_r_t_o_s}{R\-T\-O\-S} private implementation class. \end{DoxyCompactList}\item 
class \hyperlink{class_r_t_o_s_1_1clock}{clock}
\begin{DoxyCompactList}\small\item\em free-\/running clock, ticks at a fixed frequency \end{DoxyCompactList}\item 
class \hyperlink{class_r_t_o_s_1_1event}{event}
\begin{DoxyCompactList}\small\item\em set of things that can happen, or a thing that has happened \end{DoxyCompactList}\item 
class \hyperlink{class_r_t_o_s_1_1flag}{flag}
\begin{DoxyCompactList}\small\item\em basic synchronisation mechanism. \end{DoxyCompactList}\item 
class \hyperlink{class_r_t_o_s_1_1mailbox}{mailbox}
\begin{DoxyCompactList}\small\item\em synchronous handling over of a data item \end{DoxyCompactList}\item 
class \hyperlink{class_r_t_o_s_1_1mailbox__base}{mailbox\-\_\-base}
\begin{DoxyCompactList}\small\item\em \hyperlink{class_r_t_o_s}{R\-T\-O\-S} private implementation class. \end{DoxyCompactList}\item 
class \hyperlink{class_r_t_o_s_1_1mutex}{mutex}
\begin{DoxyCompactList}\small\item\em mutual execlusion semaphore \end{DoxyCompactList}\item 
class \hyperlink{class_r_t_o_s_1_1pool}{pool}
\begin{DoxyCompactList}\small\item\em place to store and rectrieve data, no built-\/in synchronisation \end{DoxyCompactList}\item 
class \hyperlink{class_r_t_o_s_1_1pool__base}{pool\-\_\-base}
\begin{DoxyCompactList}\small\item\em \hyperlink{class_r_t_o_s}{R\-T\-O\-S} private implementation class. \end{DoxyCompactList}\item 
class \hyperlink{class_r_t_o_s_1_1task}{task}
\begin{DoxyCompactList}\small\item\em an independent thread of execution \end{DoxyCompactList}\item 
class \hyperlink{class_r_t_o_s_1_1timer}{timer}
\begin{DoxyCompactList}\small\item\em one-\/short timer \end{DoxyCompactList}\item 
class \hyperlink{class_r_t_o_s_1_1waitable}{waitable}
\begin{DoxyCompactList}\small\item\em abstract thing that a task can wait for \end{DoxyCompactList}\item 
class {\bfseries waitable\-\_\-set}
\begin{DoxyCompactList}\small\item\em \hyperlink{class_r_t_o_s}{R\-T\-O\-S} private implementation construct. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Static Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{class_r_t_o_s_a27731fa3169d3337e826ff0c9994c384}{static void \hyperlink{class_r_t_o_s_a27731fa3169d3337e826ff0c9994c384}{run} (void)}\label{class_r_t_o_s_a27731fa3169d3337e826ff0c9994c384}

\begin{DoxyCompactList}\small\item\em runs the scheduler \end{DoxyCompactList}\item 
\hypertarget{class_r_t_o_s_a7e455e2e010e6af8f9f41cbeacfe6bd0}{static \hyperlink{class_r_t_o_s_1_1task}{task} $\ast$ \hyperlink{class_r_t_o_s_a7e455e2e010e6af8f9f41cbeacfe6bd0}{current\-\_\-task} (void)}\label{class_r_t_o_s_a7e455e2e010e6af8f9f41cbeacfe6bd0}

\begin{DoxyCompactList}\small\item\em returns (a pointer to) the currently executing task \end{DoxyCompactList}\item 
\hypertarget{class_r_t_o_s_a543dc322355f7277b027a3120ca13853}{static unsigned long long int \hyperlink{class_r_t_o_s_a543dc322355f7277b027a3120ca13853}{run\-\_\-time} (void)}\label{class_r_t_o_s_a543dc322355f7277b027a3120ca13853}

\begin{DoxyCompactList}\small\item\em get elapsed time in micro seconds since O\-S startup \end{DoxyCompactList}\item 
\hypertarget{class_r_t_o_s_a93b6c76a8ddc42126f9996d9c63168b8}{static void \hyperlink{class_r_t_o_s_a93b6c76a8ddc42126f9996d9c63168b8}{print} (std\-::ostream \&stream)}\label{class_r_t_o_s_a93b6c76a8ddc42126f9996d9c63168b8}

\begin{DoxyCompactList}\small\item\em prints statistics about the tasks to the stream. \end{DoxyCompactList}\item 
static void \hyperlink{class_r_t_o_s_aa9b2602178a340b2ad59ca82d4b09b5e}{statistics\-\_\-clear} (void)
\begin{DoxyCompactList}\small\item\em clears the statistics. \end{DoxyCompactList}\item 
\hypertarget{class_r_t_o_s_ace9fc0f1b35c1383b1050222706f3b70}{static void \hyperlink{class_r_t_o_s_ace9fc0f1b35c1383b1050222706f3b70}{display\-\_\-statistics} (void)}\label{class_r_t_o_s_ace9fc0f1b35c1383b1050222706f3b70}

\begin{DoxyCompactList}\small\item\em print the statistics \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Friends}
\begin{DoxyCompactItemize}
\item 
\hypertarget{class_r_t_o_s_a652c85c18e3a82a8fdd9ccd5bc1abd47}{void \hyperlink{class_r_t_o_s_a652c85c18e3a82a8fdd9ccd5bc1abd47}{timer\-I\-S\-R} (void)}\label{class_r_t_o_s_a652c85c18e3a82a8fdd9ccd5bc1abd47}

\begin{DoxyCompactList}\small\item\em the timer interrupt, updates run\-Time and Elapsed\-Time \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
static class, namespace-\/like container for \hyperlink{class_r_t_o_s}{R\-T\-O\-S} declarations 

The \hyperlink{class_r_t_o_s}{R\-T\-O\-S} is a static class, instatiation is not needed. After creating the tasks, call \hyperlink{class_r_t_o_s_a27731fa3169d3337e826ff0c9994c384}{R\-T\-O\-S\-::run()} to start the scheduling the tasks. \hyperlink{class_r_t_o_s_a27731fa3169d3337e826ff0c9994c384}{R\-T\-O\-S\-::run()} will never return. 

\subsection{Member Function Documentation}
\hypertarget{class_r_t_o_s_aa9b2602178a340b2ad59ca82d4b09b5e}{\index{R\-T\-O\-S@{R\-T\-O\-S}!statistics\-\_\-clear@{statistics\-\_\-clear}}
\index{statistics\-\_\-clear@{statistics\-\_\-clear}!RTOS@{R\-T\-O\-S}}
\subsubsection[{statistics\-\_\-clear}]{\setlength{\rightskip}{0pt plus 5cm}static void R\-T\-O\-S\-::statistics\-\_\-clear (
\begin{DoxyParamCaption}
\item[{void}]{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}}\label{class_r_t_o_s_aa9b2602178a340b2ad59ca82d4b09b5e}


clears the statistics. 

The actual clearing will be done later, inside \hyperlink{class_r_t_o_s_a27731fa3169d3337e826ff0c9994c384}{run()}, when the current task has given up the processor. 

The documentation for this class was generated from the following files\-:\begin{DoxyCompactItemize}
\item 
p\-R\-T\-O\-S.\-h\item 
p\-R\-T\-O\-S.\-cpp\end{DoxyCompactItemize}
